package br.com.simtecnologia.access.controll.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import br.com.simtecnologia.access.controll.LoginSession;

/**
 * Anotação usada para definir que uma lógica é exibida quando o acesso a um recurso
 * for negado. 
 * @author Tomaz Lavieri
 * @see LoginLogic
 * @see ControlledLogic
 * @see ControlledResource
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DeniedLogic {
	/**
	 * (Opicional)
	 * Indica que este página de acesso negado é a padrão para o {@link LoginSession}
	 * indicado.<br/>
	 * <br/>Caso não seja informado, esta página de acesso negado será a padrão apenas
	 * do controle onde ela se encontra.
	 */
	Class<? extends LoginSession> defaultFor() default LoginSession.class;
}